import { createSlice } from '@reduxjs/toolkit'

const countSlice = createSlice({
    //action中type的命名空间
    name: 'counter',
    //reducer提供的初始值
    initialState: {
        count: 0
    },
    // 目前我们有两个reduces(一个做加,一个做减)
    reducers: {
        increment(prev, action) {
            // console.log(a, b);
            //reduce中处理函数接收两个参数 分别是当前reducer中上一次的值\本次dispacth的action对象
            //action对象中有一个payload就是用户调用action函数时传递的参数

            prev.count += action.payload
        },
        decrement(prev, action) {
            prev.count -= action.payload
        }
    }
})
//1.createSilce通过传递进来的配置内容 可以得到的reducer函数  并放在了countSlice.reducer属性上
//2.createSilce根据配置内容把对应的action函数也创建出来了,把所有的action保存在countSlice的actions对象上

//通过createSilce创建的对象上有一个reducers属性，
// 直接得到就是当前的reducer函数，
// 可以暴露出去给store使用
export default countSlice.reducer

export const {
    increment,
    decrement
} = countSlice.actions;









//我们有一个createSlice的方法,接收一个配置对象,可以配action,可以以配redux.并返回
